package cn.ffcs.uec.post.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import lombok.Getter;
import lombok.Setter;
import cn.ffcs.uec.common.vo.UecBdDefdoc;
import cn.ffcs.uec.post.dao.UecPostDao;
import cn.ffcs.uom.common.model.UomEntity;
import cn.ffcs.uom.common.util.ApplicationContextUtil;
import cn.ffcs.uom.common.util.StrUtil;

/**
 * 岗位基本信息
 *
 */
public class UecPost extends UomEntity implements Serializable {

	private static final long serialVersionUID = -1550327753173687989L;

	/**
	 * 岗位基本信息主键
	 * 
	 */
	public Long getPostId() {
		return super.getId();
	}

	public void setPostId(Long postId) {
		super.setId(postId);
	}

	/**
	 * 账期
	 */
	@Getter
	@Setter
	private Long monthId;
	/**
	 * 撤销日期
	 */
	@Getter
	@Setter
	private String abortdate;
	/**
	 * 成立日期
	 */
	@Getter
	@Setter
	private String builddate;
	/**
	 * 创建时间
	 */
	@Getter
	@Setter
	private String creationtime;
	/**
	 * 创建人
	 */
	@Getter
	@Setter
	private String creator;
	/**
	 * 删除标示
	 */
	@Getter
	@Setter
	private Long dr;
	/**
	 * 启用状态
	 */
	@Getter
	@Setter
	private Long enablestate;
	/**
	 * 岗位体系
	 */
	@Getter
	@Setter
	private String glbdef1;
	/**
	 * 岗位工时制度
	 */
	@Getter
	@Setter
	private String glbdef10;
	/**
	 * 岗位层级（旧体系）
	 */
	@Getter
	@Setter
	private String glbdef3;
	/**
	 * 岗位层级（新体系）
	 */
	@Getter
	@Setter
	private String glbdef4;

	/**
	 * 岗位类别
	 */
	@Getter
	@Setter
	private String glbdef5;

	/**
	 * 岗位起始等级
	 */
	@Getter
	@Setter
	private String glbdef6;
	/**
	 * 岗位终止等级
	 */
	@Getter
	@Setter
	private String glbdef7;
	/**
	 * 岗位服务对象
	 */
	@Getter
	@Setter
	private String glbdef8;
	/**
	 * 岗位服务区域
	 */
	@Getter
	@Setter
	private String glbdef9;
	/**
	 * HR撤销日期
	 */
	@Getter
	@Setter
	private String hrcanceldate;
	/**
	 * HR撤销标志
	 */
	@Getter
	@Setter
	private String hrcanceled;
	/**
	 * 是否部门负责岗位
	 */
	@Getter
	@Setter
	private String isdeptrespon;
	/**
	 * 是否关键岗位
	 */
	@Getter
	@Setter
	private String iskeypost;
	/**
	 * 是否基准岗位
	 */
	@Getter
	@Setter
	private String isstd;
	/**
	 * 最后修改时间
	 */
	@Getter
	@Setter
	private String modifiedtime;
	/**
	 * 最后修改人
	 */
	@Getter
	@Setter
	private String modifier;
	/**
	 * 所属部门
	 */
	@Getter
	@Setter
	private String pkDept;
	/**
	 * 所属组织/公司
	 */
	@Getter
	@Setter
	private String pkOrg;
	/**
	 * 主键
	 */
	@Getter
	@Setter
	private String pkPost;
	/**
	 * 基准岗位
	 */
	@Getter
	@Setter
	private String pkPoststd;
	/**
	 * 岗位序列--pkPostseries
	 */
	@Getter
	@Setter
	private String pkPostseries;

	/**
	 * 岗位编码
	 */
	@Getter
	@Setter
	private String postcode;
	/**
	 * 岗位名称
	 */
	@Getter
	@Setter
	private String postname;
	/**
	 * 学历要求
	 */
	@Getter
	@Setter
	private String reqedu;
	/**
	 * 工作经验要求
	 */
	@Getter
	@Setter
	private String reqexp;
	/**
	 * 其他要求
	 */
	@Getter
	@Setter
	private String reqother;
	/**
	 * 专业背景要求
	 */
	@Getter
	@Setter
	private String reqpro;
	/**
	 * 性别要求
	 */
	@Getter
	@Setter
	private String reqsex;
	/**
	 * 工作时间要求
	 */
	@Getter
	@Setter
	private String reqworktime;
	/**
	 * 年龄要求
	 */
	@Getter
	@Setter
	private String reqyold;
	/**
	 * 封存标志
	 */
	@Getter
	@Setter
	private String sealflag;
	/**
	 * 直接上级
	 */
	@Getter
	@Setter
	private String suporior;
	/**
	 * 时间戳
	 */
	@Getter
	@Setter
	private String ts;
	/**
	 * 岗位层级_zy
	 */
	@Getter
	@Setter
	private String glbdef20;
	/**
	 * 岗位等级_zy
	 */
	@Getter
	@Setter
	private String glbdef21;

	public static UecPost newInstance() {
		return new UecPost();
	}

	/**
	 * 获取dao
	 * 
	 * @return
	 */
	public static UecPostDao repository() {
		return (UecPostDao) ApplicationContextUtil.getBean("uecPostDao");
	}

	/**
	 * 岗位类别名称--glbdef5
	 * 
	 * @return
	 */
	public String getGlbdef5Name() {
		if (!StrUtil.isNullOrEmpty(this.glbdef5)) {
			String sql = "SELECT * FROM UEC_BD_DEFDOC A WHERE A.PK_DEFDOC=? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.glbdef5);
			UecBdDefdoc uecBdDefdoc = repository().jdbcFindObject(sql, params, UecBdDefdoc.class);
			if (uecBdDefdoc != null) {
				return uecBdDefdoc.getName();
			}
		}
		return "";
	}

	/**
	 * 基准岗位名称--pkPoststd
	 * 
	 * @return
	 */
	public String getPkPostStdName() {
		if (!StrUtil.isNullOrEmpty(this.pkPoststd)) {
			String sql = "SELECT * FROM UEC_POST A WHERE A.PK_POST=? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.pkPoststd);
			UecPost uecPost = repository().jdbcFindObject(sql, params, UecPost.class);
			if (uecPost != null) {
				return uecPost.getPostname();
			}
		}
		return "";
	}

	/**
	 * 基准岗位编码
	 * 
	 * @return
	 */
	public String getPkPostStdCode() {
		if (!StrUtil.isNullOrEmpty(this.pkPoststd)) {
			String sql = "SELECT * FROM UEC_POST A WHERE  A.PK_POST=? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.pkPoststd);
			UecPost uecPost = repository().jdbcFindObject(sql, params, UecPost.class);
			if (uecPost != null) {
				return uecPost.getPostcode();
			}
		}
		return "";
	}

	/**
	 * 岗位层级新体系名称--glbdef4
	 */
	public String getGlbdef4Name() {
		if (!StrUtil.isNullOrEmpty(this.glbdef4)) {
			String sql = "SELECT * FROM UEC_BD_DEFDOC A WHERE A.PK_DEFDOC=? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.glbdef4);
			UecBdDefdoc uecBdDefdoc = repository().jdbcFindObject(sql, params, UecBdDefdoc.class);
			if (uecBdDefdoc != null) {
				return uecBdDefdoc.getName();
			}
		}
		return "";
	}

	/**
	 * 岗位序列--pkPostseries
	 */
	public String getPkPostseriesName() {
		if (!StrUtil.isNullOrEmpty(this.getPkPostseries())) {
			if ("1001A1100000000006R2".equals(this.getPkPostseries())) {
				return "管理序列";
			} else if ("1001A1100000000006R3".equals(this.getPkPostseries())) {
				return "专业序列";
			}
		}
		return "";
	}

	/**
	 * 是否部门负责岗位--isdeptrespon
	 */
	public String getIsdeptresponName() {
		if (!StrUtil.isNullOrEmpty(this.getIsdeptrespon())) {
			if ("Y".equals(this.getIsdeptrespon())) {
				return "是";
			} else if ("N".equals(this.getIsdeptrespon())) {
				return "否";
			}
		}
		return "";
	}

	/**
	 * 是否关键岗位--iskeypost
	 */
	public String getIskeypostName() {
		if (!StrUtil.isNullOrEmpty(this.getIskeypost())) {
			if ("Y".equals(this.getIskeypost())) {
				return "是";
			} else if ("N".equals(this.getIskeypost())) {
				return "否";
			}
		}
		return "";
	}

	/**
	 * 是否基准岗位--isstd
	 */
	public String getIsstdName() {
		if (!StrUtil.isNullOrEmpty(this.getIsstd())) {
			if ("Y".equals(this.getIsstd())) {
				return "是";
			} else if ("N".equals(this.getIsstd())) {
				return "否";
			}
		}
		return "";
	}

	/**
	 * 岗位起始等级--glbdef6
	 */
	public String getGlbdef6Name() {
		if (!StrUtil.isNullOrEmpty(this.glbdef7)) {
			String sql = "SELECT * FROM UEC_BD_DEFDOC A WHERE A.PK_DEFDOC=? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.glbdef7);
			UecBdDefdoc uecBdDefdoc = repository().jdbcFindObject(sql, params, UecBdDefdoc.class);
			if (uecBdDefdoc != null) {
				return uecBdDefdoc.getName();
			}
		}
		return "";
	}

	/**
	 * 岗位终止等级--glbdef7
	 */
	public String getGlbdef7Name() {
		if (!StrUtil.isNullOrEmpty(this.glbdef7)) {
			String sql = "SELECT * FROM UEC_BD_DEFDOC A WHERE A.PK_DEFDOC=? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.glbdef7);
			UecBdDefdoc uecBdDefdoc = repository().jdbcFindObject(sql, params, UecBdDefdoc.class);
			if (uecBdDefdoc != null) {
				return uecBdDefdoc.getName();
			}
		}
		return "";
	}

}
